仓库
公共仓库
目前Docker官方维护了一个公共的仓库『 https://hub.docker.com 』,其中已经包括 15000 个多镜像了。大部分需求都可以通过 Docker Hub 中直接下载镜像来实现。一般使用『docker search』都是从公共仓库『 https://hub.docker.com 』上进行搜索的。搜索到的镜像,使用『docker pull』可以进行下载
私有仓库
安装『docker』以后,可以使用『registry』镜像创建私有仓库。
docker pull registry
启动仓库镜像,监听端口为5000,将文件目录映射到指定的路径下。
docker run -d -p 5000:5000 -v ~/Documents/Docker/registry:/var/lib/registry
下列是上传私有仓库的完整示例
# 将本地做好的镜像备份,打上tag
docker tag test 127.0.0.1:5000/test
# 查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1:5000/test latest 85a61908f834 9 hours ago 204MB
test latest 85a61908f834 9 hours ago 204MB
registry latest d1fd7d86a825 4 days ago 33.3MB
mysql latest 7d83a47ab2d2 4 weeks ago 408MB
centos latest 3fa822599e10 6 weeks ago 204MB
# 将镜像上传至本地私有仓库
docker push 127.0.0.1:5000/test
从私有云上下载
docker pull 127.0.0.1:5000/test
其他机器从私有云上下载,比如老版本的docker,使用『pull』后,会报如下错
# Docker version 1.12.6, build 0fdc778/1.12.6
docker pull 192.168.0.103:5000/test
Using default tag: latest
Trying to pull repository 192.168.0.103:5000/test ...
Get https://192.168.0.103:5000/v1/_ping: http: server gave HTTP response to HTTPS client
需要修改『/etc/docker/daemin.json』文件,写入私有云的地址
{ "insecure-registries":["192.168.0.103:5000"] }
在进行下载,OK 下载成功。
docker pull 192.168.0.103:5000/test
Using default tag: latest
Trying to pull repository 192.168.0.103:5000/test ...
latest: Pulling from 192.168.0.103:5000/test
85432449fd0f: Pull complete
a755dfc089ae: Pull complete
Digest: sha256:e136b456003d32250180b8bef43b1b8a6652b9f67b136362a33aee1fd18bafc0
查看私有仓库中的镜像
curl -XGET http://192.168.0.103:5000/v2/_catalog
curl -XGET http://192.168.0.103:5000/v2/image_name/tags/list